import java.util.HashMap;
import java.util.Map;
import java.util.PriorityQueue;

public class Test {
    public static void main(String[] args) {
        PriorityQueue<int[]> queue = new PriorityQueue<>((a,b)->b[1]-a[1]);
        Map<Integer,Integer> hash = new HashMap<>();
        for(Map.Entry<Integer,Integer> x : hash.entrySet()){
            x.getValue();
        }
    }
}
class Solution {
    //播种时间是固定的，我们只要考虑怎样尽快所有让种子开花，
    //所以我们按照growTime从大到小排序
    public int earliestFullBloom(int[] plantTime, int[] growTime) {
        int n = plantTime.length;
        PriorityQueue<int[]> queue = new PriorityQueue<>((a,b)->{
            if(a[1] == b[1])
                return b[0] - a[0];
            return b[1] - a[1];
        });
        int ans = 0;
        for(int i=0; i<n; i++){
            queue.offer(new int[]{plantTime[i],growTime[i]});
        }
        int max = 0;
        while(!queue.isEmpty()){
            int[] tmp = queue.poll();
            ans = Math.max(ans,max+tmp[0]+tmp[1]);
            max += tmp[0];
        }
        return ans;
    }
}
